home *** CD-ROM | disk | FTP | other *** search
- 100 ' Joystick calibration routine
- 110 ' This program maps your joystick coordinates onto the screen
- 120 ' This version 2.1 85/02/02
- 130 ' Written by Gary Woodman of Sabbath Computer Services
- 140 ' PO Box 1964 Darwin N.T. 5794 (089) 85-2819 (V) (089) 85-4701 (D)
- 150 DEFINT A-Z : FALSE = 0 : TRUE = NOT FALSE
- 155 KEY OFF : CLS : PRINT "Joystick Calibrator"
- 160 PRINT "Spin your joystick to calibrate, then press the button..."
- 170 ' Initialize minimum and maximum joystick values
- 180 XJOYMIN = 999 : XJOYMAX = 0 : YJOYMIN = 999 : YJOYMAX = 0
- 190 A$ = "" : WHILE A$ = "" 'use any key instead of fire button
- 200 XJOYSTK = STICK(0) : YJOYSTK = STICK(1) 'read joystick values
- 210 IF XJOYSTK > XJOYMAX THEN XJOYMAX = XJOYSTK 'save minima & maxima
- 220 IF XJOYSTK < XJOYMIN THEN XJOYMIN = XJOYSTK
- 230 IF YJOYSTK > YJOYMAX THEN YJOYMAX = YJOYSTK
- 240 IF YJOYSTK < YJOYMIN THEN YJOYMIN = YJOYSTK
- 250 A$ = INKEY$
- 270 WEND 'until key pressed
- 280 ' Decide type of display
- 290 PRINT "SCREEN 1 or 2"
- 300 DONE = FALSE : WHILE NOT DONE : A$ = INKEY$
- 320 IF A$ = "1" THEN SCREEN 1: XPMAX = 319 : YPMAX = 199 : DONE=TRUE
- 330 IF A$ = "2" THEN SCREEN 2: XPMAX = 639 : YPMAX = 199 : DONE=TRUE
- 340 WEND
- 350 CLS : LINE (0,0)-(XPMAX,YPMAX),1,B 'a box on the screen edges
- 360 WHILE 0 = 0 'simple do-forever
- 370 XJOYSTK = STICK(0) : YJOYSTK = STICK(1) 'read joystick values
- 380 ' LINE -(XPIXEL,YPIXEL),0 'undraw previous line
- 390 IF XJOYSTK > XJOYMAX THEN XJOYMAX = XJOYSTK 'save new max
- 400 IF XJOYSTK < XJOYMIN THEN XJOYMIN = XJOYSTK 'save new min
- 410 ' X and Y pixel addresses are max. pixel number * ratio between
- 420 ' current and maximum displacements from minimum
- 430 XPIXEL = XPMAX * (XJOYSTK - XJOYMIN) / (XJOYMAX - XJOYMIN)
- 440 IF YJOYSTK > YJOYMAX THEN YJOYMAX = YJOYSTK 'save new max
- 450 IF YJOYSTK < YJOYMIN THEN YJOYMIN = YJOYSTK 'save new min
- 460 YPIXEL = YPMAX * (YJOYSTK - YJOYMIN) / (YJOYMAX - YJOYMIN)
- 470 ' PSET (XPIXEL,YPIXEL) 'the big moment!
- 479 PSET (XPIXEL,YPIXEL)
- 480 ' LINE -(XPIXEL,YPIXEL)
- 490 ' keyboard control - C clears screen, R recalibrates
- 500 A$ = INKEY$ : IF A$ <> "" THEN IF A$ = "C" OR A$ = "c" THEN 350 ELSE IF A$ = "R" OR A$ = "r" THEN 155
- 505 LOCATE 24,1 : PRINT "X< Y< X> Y> XJ YJ XPX YPX";
- 510 LOCATE 25,1 : PRINT XJOYMIN;YJOYMIN;XJOYMAX;YJOYMAX;XJOYSTK;YJOYSTK;XPIXEL;YPIXEL;
- 520 WEND
-